I do not understand, I do not know, because there is a description of this function is included .. Help!
\Zvjyazuvannya.cpp|13|undefined reference to `_imp__Options|
Code:
/* Глава 5. Версия atou, использующая явное связывание. */
#include "EvryThng.h"
#include "OPTIONS.C"
#include "REPRTERR.C"
int _tmain (int argc, LPTSTR argv [])
{
/* Объявить переменную Asc2Un как функцию. */
BOOL (*Asc2Un)(LPCTSTR, LPCTSTR, BOOL);
DWORD LocFileIn, LocFileOut, LocDLL, DashI;
HINSTANCE hDLL;
FARPROC pA2U;
LocFileIn = Options (argc, argv, _T ("i"), &DashI, NULL);
LocFileOut = LocFileIn + 1;
LocDLL = LocFileOut + 1;
/* Проверить существование файла, а также опущен ли параметр DashI. */
/* Загрузить функцию преобразования из ASCII в Unicode. */
hDLL = LoadLibrary (argv [LocDLL]);
if (hDLL == NULL)
ReportError (_T ("Не удается загрузить DLL."), 1, TRUE);
/* Получить адрес точки входа. */
pA2U = GetProcAddress (hDLL, "Asc2Un");
if (pA2U == NULL)
ReportError (_T ("Не найдена точка входа."), 2, TRUE);
/* Привести тип указателя. Здесь можно использовать typedef. */
Asc2Un = (BOOL (*)(LPCTSTR, LPCTSTR, BOOL)) pA2U;
/* Вызвать функцию. */
Asc2Un (argv [LocFileIn], argv [LocFileOut], FALSE);
FreeLibrary (hDLL);
return 0;
}
Code:
/* Utility function to extract option flags from the command line. */
#include "Everything.h"
#include <stdarg.h>
DWORD Options (int argc, LPCTSTR argv [], LPCTSTR OptStr, ...)
/* argv is the command line.
The options, if any, start with a '-' in argv[1], argv[2], ...
OptStr is a text string containing all possible options,
in one-to-one correspondence with the addresses of Boolean variables
in the variable argument list (...).
These flags are set if and only if the corresponding option
character occurs in argv [1], argv [2], ...
The return value is the argv index of the first argument beyond the options. */
{
va_list pFlagList;
LPBOOL pFlag;
int iFlag = 0, iArg;
va_start (pFlagList, OptStr);
while ((pFlag = va_arg (pFlagList, LPBOOL)) != NULL
&& iFlag < (int)_tcslen (OptStr)) {
*pFlag = FALSE;
for (iArg = 1; !(*pFlag) && iArg < argc && argv [iArg] [0] == _T('-'); iArg++)
*pFlag = _memtchr (argv [iArg], OptStr [iFlag],
_tcslen (argv [iArg])) != NULL;
iFlag++;
}
va_end (pFlagList);
for (iArg = 1; iArg < argc && argv [iArg] [0] == _T('-'); iArg++);
return iArg;
}